home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Presentations / Presentations ’88 / Feldt's Object Stuff / SSG include / RedRyderHost.h < prev    next >
Text File  |  1987-02-28  |  6KB  |  131 lines

  1. /*            Beacon™ - Multiple Communication Route Message Center            */
  2.  
  3. /*                  designed and implemented by David A. Feldt                    */
  4. /*                       President - Small Systems Guild                        */
  5. /*                PO box 2751, Ann Arbor, MI 48106 (313) 996-4238                */
  6.  
  7. /*      The purpose of this header is to define all of the data structures     */
  8. /*      used in Red Ryder Host, allowing Beacon to simulate, translate, or    */
  9. /*      back create Host compatable userlog, menu and message data files        */
  10.  
  11. /*              Red Ryder Host designed and implemented by Scott Watson        */
  12. /*                    copyright © 1986,87 by The Freesoft Company                */
  13. /*                10828 Lacklink, St. Louis, MO  63114 (314) 423-2190            */
  14.  
  15. /*        Beacon uses the following commercially licensed object libraries    */
  16.  
  17. /*                        Lightspeed C compiler 2.01                            */
  18. /*                    c-tree ISAM/B-Tree v4.1 release D                        */
  19. /*                      Extender vol1 3.03, vol2 3.b1                            */
  20. /*                       Communications Extender 1.a7                            */
  21.  
  22. /* DAF    created this file from Red Ryder Host doc 1.0 w/1.4 update    2/28/87    */
  23.  
  24. #define        RRH_MAXMENUOPTS    80        /* max menu options per host menu file    */
  25.  
  26. #define        RRH_MORE_EQUAL    0        /* user access must be >= accessLevel    */
  27. #define        RRH_LESS_EQUAL    1        /* user access must be <= accessLevel    */
  28. #define        RRH_EQUAL        2        /* user access must be  = accessLevel    */
  29.  
  30. #define        RRH_ERASE_MASK    0x01    /* 0 = active, 1 = delete message flag     */
  31. #define        RRH_REPLY_MASK    0x02    /* 0 = original, 1 = reply message flag */
  32. #define        RRH_PRIV_MASK    0x04    /* 0 = public, 1 = private message flag */
  33.  
  34. #define        RRH_LINEFEED    0x01    /* 0 = CR only, 1 = CR and LF needed    */
  35. #define        RRH_CLEARSCREEN    0x02    /* clear screen with 0 = CRs, 1 = 0x0C     */
  36. #define        RRH_HOTMENUS    0x80    /* 0 = CR, 1 = hot menus, no CR needed     */
  37. #define        RRH_SYS1_MSG    0x10    /* 1 if system message 1 has been read    */
  38. #define        RRH_SYS2_MSG    0x20    /* 1 if system message 2 has been read    */
  39. #define        RRH_SYS3_MSG    0x40    /* 1 if system message 3 has been read    */
  40. #define        RRH_NEVERCLEAR    0x80    /* 1 = ignore bit 1, never clear screen    */
  41.  
  42.  
  43. struct    RRHOption {            /* Red Ryder Host menu option file format, v1.4    */
  44.             unsigned char    optionType;            /* activity command invokes    */
  45.             unsigned char    optionText[61];        /* command text description    */
  46.             unsigned char    optionChar;            /* select char user types    */
  47.             unsigned char    optionData[41];        /* command optional data    */
  48.             unsigned char    accessMod;             /* >=, <= or = accessLevel    */
  49.             unsigned char    accessLevel;        /* user accessLevel needed    */
  50.         };
  51. typedef struct    RRHOption    RRHOption;
  52.  
  53. struct    RRHMenu {            /* Red Ryder Host menu file format, version 1.4    */
  54.             unsigned char    title1[61];            /* first line of menu title    */
  55.             unsigned char    title2[61];            /* second line of menu title*/
  56.             unsigned char    title3[61];            /* third line of menu title    */
  57.             unsigned char    optCount;              /* how many options follow    */
  58.             RRHOption        option[RRH_MAXMENUOPTS];/* variable length array*/
  59.         };
  60. typedef struct    HostMenu    HostMenu;
  61.  
  62. struct    RRHMessages {        /* Red Ryder Host message file format, v1.4        */
  63.             unsigned char    msgPath[50];  /* MSHHDR & MSGTXT files vol/path    */
  64.             long            lowMsg;                /* lowest message number    */
  65.             long            highMsg;            /* highest message number    */
  66.             long            reserved;            /* currently unused, rsrvd    */
  67.             unsigned char    msgSecTitle[20][26];/* 20 message section titles*/
  68.             unsigned char    accessLevel[20];    /* msg section accessLevel    */
  69.             unsigned char    accessMod[20];         /* >=, <= or = accessLevel    */
  70.         };
  71. typedef struct    RRHMessages    RRHMessages;
  72.  
  73. struct    RRHDateTime {        /* Red Ryder Host message date/time format,v1.4    */
  74.             unsigned char    month;              /* month number  (01 to 12)    */
  75.             unsigned char    day;                /* day number    (01 to 31)    */
  76.             unsigned char    year;                  /* year number   (00 to 99)    */
  77.             unsigned char    hour;                /* hour number   (00 to 23)    */
  78.             unsigned char    minute;              /* minute number (00 to 59)    */
  79.             unsigned char    second;                /* second number (00 to 59)    */
  80.         };
  81. typedef struct    RRHDateTime    RRHDateTime;
  82.  
  83. struct    RRHTimeDate {        /* Red Ryder Host alternate date/time format     */
  84.             unsigned char    month;              /* month number  (01 to 12)    */
  85.             unsigned char    day;                /* day number    (01 to 31)    */
  86.             unsigned char    year;                  /* year number   (00 to 99)    */
  87.             unsigned char    hour;                /* hour number   (00 to 23)    */
  88.             unsigned char    minute;              /* minute number (00 to 59)    */
  89.             unsigned char    second;                /* second number (00 to 59)    */
  90.         };
  91. typedef struct    RRHTimeDate    RRHTimeDate;
  92.  
  93. struct    RRHMsgHdr {            /* Red Ryder Host message header format, v1.4    */
  94.             unsigned char    status;              /* erase,reply,private bits    */
  95.             unsigned char    rsrv1;                /* currently unused, rsrvd    */
  96.             long            number;                /* message identity number    */
  97.             unsigned char    section;              /* message section number    */
  98.             unsigned char    rsrv2;                /* currently unused, rsrvd    */
  99.             RRHDateTime        date;                /* time & date msg created    */
  100.             unsigned char    from[32];            /* who message came from    */
  101.             unsigned char    to[32];                /* who message addressed to    */
  102.             unsigned char    subject[42];        /* message subject text        */
  103.             long            textOffset;            /* byte offset into MSGTXT     */
  104.             long            length;                /*message text size in bytes*/
  105.             long            rsrv3;                /* currently unused, rsrvd    */
  106.         };
  107. typedef struct    RRHMsgHdr    RRHMsgHdr;
  108.  
  109. struct    RRHUserlog {        /* Red Ryder Host userlog file format, v1.4        */
  110.             unsigned char    first[16];            /* user's first name        */
  111.             unsigned char    last[16];            /* user's last name            */
  112.             unsigned char    address[31];        /* city user calling from    */
  113.             unsigned char    password[9];        /* user selectable password    */
  114.             unsigned int    calls;              /* total times user called    */
  115.             RRHTimeDate        date;                /* time of most recent call    */
  116.             unsigned char    timeLimit;            /* max minutes per session    */
  117.             unsigned char    accessLevel;        /* current user accessLevel    */
  118.             unsigned char    rsrv1[3];            /* currently unused, rsrvd    */
  119.             unsigned char    flags;                /* user preference flags    */
  120.             unsigned int    uploads;              /* total user file uploads    */
  121.             unsigned int    downloads;          /* total user file downloads*/
  122.             unsigned int    privMsg;              /* total private msgs sent    */
  123.             unsigned int    pubMsg;              /* total public msgs sent    */
  124.             unsigned char    msgGrp1;            /* combined msg group  2-9    */
  125.             unsigned char    msgGrp2;            /* combined msg group 10-17    */
  126.             unsigned char    msgGrp3;            /* combined msg group 18-20    */
  127.             unsigned char    rsrv2[3];            /* currently unused, rsrvd    */
  128.         };
  129. typedef struct    RRHUserlog    RRHUserlog;
  130.  
  131.